The World Wide Web (“the Web”) is a system for publishing information, in which users may use a web browser application to retrieve information, such as web pages, from web servers and display it.
The Web has increasingly become a medium used to shop for products. Indeed, thousands and thousands of different products—as well as other items such as service contracts—may be purchased on the Web. A user who plans to purchase an item on the Web can visit the Website of a Web merchant that sells the item, view information about the item, give an instruction to purchase the item, and provide information needed to complete the purchase, such as payment and shipping information.
It is typical for a user to view information about a product on an “item detail page.” The information provided on an item detail page may include such information as the item's name and source, a picture of the item, a description of the item, reviews or ratings of the item, a price at which the item is offered for sale, and a control—such as a button—that may be activated by the user to order the item from the web merchant.
In some senses, shopping at a web merchant is significantly more compelling than shopping at a physical merchant. For example, a user that shops at a web merchant can complete a shopping task without the extra inconvenience, time cost, and pecuniary cost associated with visiting a physical merchant in person. Also, a user may shop at two or more web merchants simultaneously, permitting him or her to simultaneously gather information about the product from several sources.
Although shopping at a web merchant has several distinct advantages such as those discussed above, shopping at conventional web merchants sometimes has certain disadvantages, relating to the generation and use of information describing the availability of items sold by a merchant. One such disadvantage is that it is often difficult for a user considering ordering an item from an online merchant to understand when the item would be received from the web merchant. While many web merchants provide a certain level of information on an item's detail page about how soon the item can be shipped by the merchant or received by the user, this information is often imprecise, or even inaccurate. Item availability information may be imprecise in cases where the web merchant displays item availability using large ranges of availability times, such as “1-2 weeks.” Item availability information may be inaccurate in cases where the availability information reported by the web merchant is slow to reflect changes in the merchant's inventory, such as those produced by recent sales or supplier shipments of the item. Attempts to provide precise and accurate availability information is in many cases confounded by a merchant's use of several different distribution centers and item suppliers, information from all of which must be timely and accurately incorporated in any useful determination of item availability. Because this uncertainty about item availability from conventional web merchants is contrasted with users' typical experience of purchasing in-stock items from physical merchants and taking the items home immediately, some users may prefer to continue to purchase from physical merchants despite the advantages provided by web merchants.
Additionally, sometimes a user that is willing to order an items from a web merchant is disappointed by the web merchant's failure to decide effectively whether to accept an order for the item. For example, in some cases, a web merchant may accept an order for an item that, in addition to being out of stock at the merchant, is without prospect of replenishment, such as an item that is out of print, or an item that was formerly obtained from a single supplier that has ceased carrying the item. As second example, a web merchant may refuse to accept an order for an item that, while it is currently out of stock, will be received by the merchant from a supplier in a short time. This second phenomenon can prevent a web merchant from effectively accepting pre-orders for a highly-anticipated item whose release date is in the near future.
The described difficulties in determining the availability of items are compounded for determining the availability of groups, or “bundles,” of different items that may be purchased together, since the availability of a bundle is predicated on the availability of each of its constituent items. As one example, a bundle of items may include a package of golf balls, a golfing book, and a golfing video. The availability of this bundle is based upon the availability of all of the three constituent items, and has the potential to change any time the availability of any of the constituent items changes. For an item that is part of more than one bundle, a change to the availability of the item may change the availability of each of the bundles that contain it. For example, the golfing video item may be part of 450 different bundles. When an order is received for the golfing video item, or a shipment of more golfing video items is received, this may change the availability of each of these 450 bundles.
In view of the high level of dependency of bundle availability information on constituent item availability information, static bundle availability information can quickly fall out of date for merchants in which changes in constituent item availability are frequent. Conventional approaches to maintaining the currency of bundle availability information have significant disadvantages.
Typically, such approaches involve either periodically updating the availability of all bundles, or updating the availability of certain bundles in response to the occurrence of an event. Periodically updating the availability of all bundles generally consumes great quantities of processing power, wasting significant computing resources to determine availability for bundles whose availability couldn't have changed. Accordingly, this approach typically requires expensive dedicated hardware, involves relegating the update cycle to be relatively infrequent, and prevents effective scaling to larger numbers of bundles. Alternatively, if this level of resources is not dedicated to the implementation of this approach, the implementation generally cannot maintain availability information that is current enough to support accurate inventory planning and promising.
Updating the availability of certain bundles in response to the occurrence of an event, such as each time the availability of a constituent item changes, or each time a request for the availability of a bundle is requested, can be similarly inefficient. Such approaches commonly also consume great quantities of processing power. Additionally, by updating in response to external events, users of this approach relinquish control over when such processing power is used, and in what quantity.
In light of the disadvantages discussed above, an efficient, effective approach to tracking the availability of bundles of items would have significant utility.